The Ethernet is the most widespread technology for transmitting data in local area communication networks, “local area networks” (LAN), currently at a speed of up to 100 million bits/s (mbps). LANs are local area communication networks which are limited to a geographical area and are made up of one of a plurality of servers and workstations, “nodes”, which are connected by means of a transmission link, e.g. a coaxial, fibreglass or twisted pair cable. A wide variety of network topologies are possible for LANS, with the best known being the bus, ring, star or tree structures.
LANs are operated with a network operating system and a standard network protocol. The Ethernet is one possible network protocol and in this case supports a wide variety of communication protocols, e.g. the TCP/IP protocol or the IPX protocol. In the OSI layer model, the international reference model for data transmission in networks, which is constructed from a layer stack comprising seven layers, each layer having a set of protocols defined for it which each provide their services to the next highest layer, the Ethernet is associated with the second layer, the “data link layer”. This data link layer converges the data which are to be sent to form messages, which have specific information added to them for the respective communication protocol. The data link layer has responsibility in the network for transporting the data messages from node to node and for error detection.
In the case of the Ethernet concept, the data link layer is divided into two levels, with the first level adding a header section, a “start identifier”, to the data, said header section containing information which is required by the receiver protocol for correct data transmission. In the second level of the Ethernet protocol, the data message is then encapsulated using an additional preamble and an end section, a “checksum”, for transport from node to node. Using such Ethernet messages, it is possible to transmit data with a length of up to 1500 bytes, it being necessary to observe a fixed break time between the individual Ethernet messages.
The responsibility for sending and receiving the Ethernet messages on the Ethernet transmission link is that of an Ethernet controller, also called a media access controller (MAC), which is switched between the node and the Ethernet transmission link and is connected to the node via a bus system. This Ethernet controller is normally controlled by a software driver, which is incorporated in the respective operating system of the node. The Ethernet controller generally comprises a send shift register and a receive shift register in order to decouple the Ethernet transmission link from the physical memory of the node. Modern Ethernet controllers also normally have an opportunity for direct access to the physical memory of the node, “direct memory access” (DMA), as a result of which the software driver in the operating system of the node can store the Ethernet messages to be sent and received directly in the memory of the node or fetch them from this memory with a time saving.
Ethernet protocols are primarily used in office communication networks. The advantages of the Ethernet concept when using standard hardware and software components and also the opportunity to achieve high data transmission rates with simple networking technology mean that Ethernet communication networks increasingly also need to be used in industrial production for data interchange between workstations. When using the Ethernet protocol in automation technology, however, additional complex hardware and/or software techniques need to be used to ensure the real-time capability of Ethernet data transmission. When controlling machines, it is normally necessary for cyclic processing of a control task to take place essentially without any time fluctuations, i.e. “jitter”, the reaction to the control request having a predictable response time.
If Ethernet messages are to be sent cyclically, for example as part of a real-time application running on a control computer designed as a node in an Ethernet network, in order to address sensors and actuators linked by means of the Ethernet transmission link, the control computer uses the software driver integrated in the operating system to send appropriate Ethernet messages to its Ethernet controller in each control cycle. In this case, the software driver automatically adds the break times, start identifiers, preambles and checksums defined in the Ethernet transmission standard (IEEE 802.3) to the real-time data which are to be sent before transferring the Ethernet messages to the Ethernet controller. The Ethernet controller then loads the corresponding Ethernet messages into its send shift register, preferably using direct memory access transmission, and starts to send the Ethernet messages on the Ethernet transmission link from a particular filling level of the send shift register onward.
This send sequence of the control computer with the connected Ethernet controller contains a plurality of jitter-affected operations whose jitters add up in the worst case and then exceed a maximum permissible value for the real-time application, which is normally in the range of a few microseconds. In this case, the jitter is supported by the fluctuating interrupt latencies at the node when generating the data which are to be sent, and by the routine fluctuations in the program code processed up to the sending of the Ethernet message. In modern control computers, which have a cache memory, the routine of the program codes additionally fluctuates too, since depending on the cache content it is necessary to wait a different length of time for the requested content of the memory at the node.
The Ethernet controller is normally connected to the node by means of a bus system, with a PCI bus often being used. Since such a bus is generally also used by other system parts, different lengths of waiting times may arise for the bus allocation. This applies both when the Ethernet controller accesses the physical memory of the control computer using direct memory access transmission and when the real-time data are transmitted via the bus system under the control of the software driver. Similar jitters always arise during bus allocation. Furthermore, the Ethernet controller always starts to send the Ethernet messages on the Ethernet transmission link from a particular filling level of the send shift register onward. In this case, the sending of the Ethernet messages may then be delayed for different lengths of time depending on the filling level of the send shift register, which results in additional jitter.
If the resultant total jitter in the transmission operation is above the maximum permissible jitter for the respective real-time applications, such a discrepancy a complex method, such as IEEE 1588 (IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems), needs to be used to provide an appropriately accurate time base in all communication subscribers on the Ethernet transmission link, which can then be used to compensate for the jitter.